package tests;

/**
 * @author 李夏
 * @version 1.0
 */

import common.Utils;
import org.junit.jupiter.api.Assertions;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.io.IOException;
import java.lang.reflect.Method;
import java.time.Duration;

/**
 * 私信页面测试
 */
public class MessagePage extends Utils {
    public static String url = "http://127.0.0.1:58080/index.html";
    public MessagePage() {
        super(url);
    }


    /*
    当前用户及对方状态正常，发送成功
     */
    public void  messagePageSuc() throws InterruptedException, IOException {
        LoginPage loginPage=new LoginPage();
        loginPage.loginSuc();

        driver.findElement(By.xpath("//*[@id=\"artical-items-body\"]/div[6]/div/div[2]/div[1]/a/strong")).click();
//        System.out.println("点击了文章");
       //发私信
        driver.findElement(By.xpath("//*[@id=\"btn_details_send_message\"]")).click();
//        System.out.println("点击了发私信");
        // 创建 WebDriverWait 实例，设置最长等待时间为 10 秒
//        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
//
//        System.out.println("设置了wait");
//        // 等待警告框出现
//        wait.until(ExpectedConditions.alertIsPresent());
//        System.out.println("等待警告框");
//
//        // 切换到警告框
//        Alert alert = driver.switchTo().alert();
//        System.out.println("切换到警告框");
//
//        // 存储警告框文本并验证
//        String text = alert.getText();
//        Assertions.assertEquals(text, "发送站内信");
//        System.out.println("存储警告框文本并验证");
//
//        // 向警告框输入内容
//        alert.sendKeys("小临你啥时候回家");
//        System.out.println("向警告框输入内容");
//        // 点击警告框的确定按钮
//        alert.accept();
//        System.out.println("点击警告框的确定按钮");
        driver.findElement(By.cssSelector("#index_message_receive_content")).sendKeys("小临快回家");
        driver.findElement(By.cssSelector("#btn_index_send_message")).click();
        String res = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right > div")).getText();


        Method method = new Object() {
        }.getClass().getEnclosingMethod();
        String methodName = method.getName();
        getScreenShot(getClass().getName(),methodName);

        assert res.equals("发送成功");
    }
    /*
    导航栏点击小铃铛显示当前所有私信
     */
    public void messageShow() throws IOException {
        LoginPage loginPage=new LoginPage();
        loginPage.loginSuc();
        driver.findElement(By.cssSelector("body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > div > a > svg")).click();
        driver.findElement(By.cssSelector("#offcanvasEndLabel"));

        Method method = new Object() {
        }.getClass().getEnclosingMethod();
        String methodName = method.getName();
        getScreenShot(getClass().getName(),methodName);

    }
    /*
    当前用户状态正常，回复的是自己接受的信息，回复成功
     */
    public void messageBack() throws IOException {
        LoginPage loginPage=new LoginPage();
        loginPage.loginSuc();
        driver.findElement(By.cssSelector("body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > div > a > svg")).click();
        driver.findElement(By.cssSelector("#index_div_message_list > div:nth-child(3) > div > div.col.text-truncate > a > span:nth-child(2)")).click();
        driver.findElement(By.cssSelector("#btn_index_message_reply")).click();
        driver.findElement(By.cssSelector("#index_message_reply_receive_content")).sendKeys("好的小临");
        Method method = new Object() {
        }.getClass().getEnclosingMethod();
        String methodName = method.getName();
        getScreenShot(getClass().getName(),methodName);


    }


}
